package thread;

//: c13:SleepingThread.java
//Calling sleep() to wait for awhile.
//From 'Thinking in Java, 3rd ed.' (c) Bruce Eckel 2002
//www.BruceEckel.com. See copyright notice in CopyRight.txt.

public class SleepingThread extends Thread {

private int countDown = 100;

private static int threadCount = 0;

public SleepingThread() {
 super("" + ++threadCount);
 start();
}

public String toString() {
 return "#" + getName() + ": " + countDown;
}

public void run() {
 while (true) {
   System.out.println(this);
   if (--countDown == 0)
     return;
   try {
     sleep(100);
   } catch (InterruptedException e) {
     throw new RuntimeException(e);
   }
 }
}

public static void main(String[] args) throws InterruptedException {
 for (int i = 0; i < 5; i++)
   new SleepingThread().join();
 
 System.out.println(">>>>>>>>>>>>>>>>>>>>>>>");
}
} ///:~
